package zzh_dbUtils;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public class TestDriver3 {


    public static void main(String[] args) {
        // 原生jdbc连接数据库
        testDBUtils();
        testDBUtils1();
    }

    /**
     * java使用dbutuils进行查询操作
     */
    private static void testDBUtils() {
        try {
        //获取数据源对象 -dbcp数据源
        DataSource dataSource = DBCPDataSource1.getDataSource();
        //获取查询器 -dbutils使用queryrunner座位数据库操作的查询器
        QueryRunner queryRunner = new QueryRunner(dataSource);
        //准备SQL语句
        String strSql = "SELECT * FROM user";
        //获取查询的结果集
        List<Map<String,Object>> listRusultSet = queryRunner.query(strSql,new MapListHandler());
        //遍历结果集，进行业务逻辑处理
        System.out.println("转储结果：");
        System.out.println(listRusultSet);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }

 

    private static void testDBUtils1() {
        try {
        //获取源数据对象
            DataSource dataSource = DBCPDataSource1.getDataSource() ;
        //获取查询器
            QueryRunner queryRunner = new QueryRunner(dataSource);
            //创建sql语句
            String strSql = "SELECT * FROM user";
            //获取查询的结果集
            List<UserInfoBean> listRusultSet =
                    (List<UserInfoBean>)queryRunner.query(strSql,new BeanListHandler(UserInfoBean.class));
            //遍历结果集，进行业务逻辑处理
            System.out.println("转储结果1：");
            System.out.println(listRusultSet);

            //获取某一行数据
            System.out.print("第一行数据的用户名：");
            System.out.println(listRusultSet.get(0).getUserName());
        }catch (SQLException throwables){
            throwables.printStackTrace();
        }
    }


}
